Modern computing systems typically include two or more processor cores (or simply, cores) integrated onto a single die. These cores may have homogenous workloads or they may have heterogeneous workloads. The term “homogenous workloads” refers to those cases when the workloads running on different cores have substantially similar demands on shared resources (e.g., last level cache, interconnects, main system memory, etc.). The term “heterogeneous workloads” refers to the case when the workloads running on different cores present significantly different demands on shared resources.
The multiple cores typically share a common collection of memory resources called main system memory. Main system memory may include a number of dynamic random access memory devices (DRAMs). The temperature of the DRAMs is a function of the usage level of the DRAMs.
Modern computing systems may include mechanisms to control the temperature of the DRAMs. For example, they may support a DRAM throttle mode (DTM) in which there is an on/off duty cycle control when the DRAM device temperature exceeds a preset safe threshold temperature. During the ON state, the memory controller applies normal scheduling algorithms to schedule requests for a specified number of clock cycles (e.g., 256 DRAM clocks). During the OFF state, the memory controller blocks (throttles) all requests to the DRAMs for a specified number of clock cycles (e.g., 256 clocks) to allow memory to cool down to a lower temperature.